1. Technical Field of the Invention
The present invention relates to a process for hiding a binary data inside a numerical multimedia document, such as this data represents an image, textual data or the logo of a company in gray levels, to be retrieved from the modified document. The present invention, further, relates to applications which can take advantage of the process for hiding data into a numerical image.
2. Background Art
Numerical imaging is certainly the first field of multimedia applications for which there is an important need to introduce binary data into an image. Various techniques exist for hiding binary data, for example xe2x80x9cwatermarking an application, where digitized documents are marked in order to prove ownership or content authentication.
Cryptographic techniques exist that have the purpose of creating an xe2x80x9cunreadablexe2x80x9d document. This does not correspond to the technical background being considered in this application where the original document must remain readable and visible.
Generally speaking, the known techniques for hiding data present some drawbacks:
The quality of the image degrades, as does the ability to control the degradation;
The image can loose clarity, which results in the retrieval of unreliable information;
Some approaches require the use of the original image in order to retrieve the hidden binary information. The hidden data cannot therefore be recovered from the modified document alone. This is a major drawback because, it is important in many applications, to retrieve the embedded information without reference to the original documentxe2x80x94a blind retrieval system.
An object of the present invention is to achieve a process for hiding binary information inside a document, while preserving image quality.
It is, further, an object of the present invention to provide a process for hiding information inside a fixed or video image, in color or gray levels, and more generally in any multimedia document, without jeopardizing the quality of the original document. In particular, when hiding binary data within a fixed or video image, it is important to prevent any loss in the visual clarity or audio quality, or at least to efficiently limit the distortion.
The aim of limiting the distortion introduced when adding information to a document requires the resolution of a paradox because, generally, the more information is introduced within a given image, the more distortion occurs.
Another object of the present invention is to in achieve a process for hiding information, which permits the retrieval of hidden data, without the original document, even when the modified document has been subject of a wide range of non destructive transformations.
Another object of this invention is to provide a process that allows for adding hidden information while maintaining the integrity of the original. In fact a great deal of hidden information maybe added without degrading the original.
Still, another object of this invention is to provide a process for concealing information that is easily changed or corrected when new information is added to the document.
Further still, another object of this invention is to provide a method for hiding data in any multimedia document (image, audio, video).
Additionally, an object of this invention is to provide a process for hiding of any kind of numerical information inside a multimedia document, for more security purposes. The particular use of the process of this invention will be determined by the practical requirements of the data which is to be introduced within the document.
To achieve at least one of these object, a process for hiding a primary numerical information (Iinf1) inside an initial numerical document, in particular a multi-media document (Iorig), includes the steps of:
generating a numerical reference document (Iref) which is a function of the initial numerical document (Iorig), and secondary numerical information (Iinf2) which is a function of the primary numerical information to hide. The sum of the numerical document of reference (Iref) and the secondary numerical information (Iinf2) creates a modified document (Ixe2x80x2orig) very close to the initial document (Iorig);
inserting said secondary numerical information (Iinf2) within the original document, by computing a modified picture (Ixe2x80x2orig) composed of the sum of the numerical document of reference (Iref) and secondary numerical information (Iinf2), in order to obtain a modified numerical document (Ixe2x80x2orig) close to the initial document (Iorig) but including without any visual distortion the primary information (Iinf1) to be introduced within the document.
In a preferred embodiment of this invention, the value of each pixel of the modified document (Ixe2x80x2orig) is included within the range defined by the value computed in the numerical document of reference (Iref) and the value given by the initial document (Iorig).
A fractal transformation is used in the preferred embodiment of this invention for determining the numerical document of reference (Iref) from the initial document (Iorig). The fractal transformation includes the following steps:
splitting the initial document (Iorig) in a set of primitives RANGE (i) covering the whole initial document;
extracting from the initial document (Iorig) a set of primitives DOMAIN(j), in order to create a basic codebook (Dbase) of primitives DOMAIN(j);
determining from the dictionary of basic DOMAIN primitives a final codebook (Dfinal) of additional DOMAIN primitives, by applying to the basic primitives, a set of local geometric and/or photometric transformations;
matching each basic RANGE(i) primitive with a DOMAIN(j) primitive of the (Dbase) codebook, in such a way that each RANGE(i) primitive be equal to a transformed DOMAIN(j) primitive via an elementary transformation wi., plus an error (xcex5i), which allows the numerical information (Iinf1) to be embedded. The image which is composed by the set of RANGE primitives, computed from a DOMAIN primitive itself extracted from the final codebook (Dfinal), is denoted WIorig (or attractor A in the particular case where the selected context correspond to a contractive Iterated Function System (IFS) code as explained later in this document).
In a second embodiment of this invention, a lossy coding approach allows the computation of the numerical document of reference (Iref) from the initial document (Iorig). From the perspective of numerical imaging applications, a JPEG coding can be used, or a process based on a reduction of the resolution to the initial document (Iorig).
In order to generate the secondary numerical information (Iinf2) from the primary numerical information (Iinf1) that is to hidden, the fractal analysis involves the computing of a gap image. The gap image is computed as the difference of the initial document (Iorig) and a fractal transformation code associated with the initial document (Iorig), as given by the formula:
GAP=Iorigxe2x88x92WIorig.
If the particular code is a contractive code then the gap image is the difference between the initial document (Iorig) and an attractor (A), as given in the formula:
GAP=Iorigxe2x88x92A
The attractor (A) is determined from the fractal code W associated to the original image (Iorig). For each pixel (x,y) of the original document, the secondary numerical information to hide (Iinf2) is determined from the gap image difference (GAP) between the initial document Iorig (given) and the numerical document of reference Iref (computed). A binary relationship between the gap image (GAP) and the primary numerical information (Iinf1) to be hidden is then established in order to define the exact value of the secondary numerical information Iinf2 to introduce within the numerical document of reference Iref and used for deriving the modified document Ixe2x80x2orig. Hence, if there is a correspondence according to the employed criterion for a given pixel (x,y) of the document, the secondary numerical information (Iinf2) is set equal to the gap image (GAP) for the criterion. Otherwise the primary numerical information to be hidden for that pixel is not taken into account. It should be that this is a substantial advantage of this invention, that the pixels which are dedicated to carry information contribute to render the modified initial document (Ixe2x80x2orig) as the sum of the initial document (Iorig) and the secondary numerical information (Iinf2) close to the initial document (Iorig).
In the preferred embodiment of this invention, the relationship is established in accordance with the following formula which is used for deriving the value of the secondary numerical information Iinf2(x,y)
Iinf2(X, Y)=Inf (GAP(x, y); 0) or Sup (GAP(x, y), 0) according to
whether Iinf1 is respectively equal to 0 or to 1. This law of
correspondence can be also expressed as:
If (GAP(x,y) less than 0 AND Iinf1(x,y)=0) OR (GAP(x,y) greater than 0 AND Iinf1(x,y)=1)
THEN Iinf2(x,y)=GAP(x,y)
ELSE Iinf2(x,y)=0
In one implementation of this invention, when the gap image (GAP) corresponds to a value higher than a given threshold, the secondary numerical information (Iinf2) for a selected pixel (x,y) is set equal to the gap difference )GAP) for the selected pixel (x,y) whatever the value of primary numerical information (Iinf1) of the selected pixel (x,y) is. At the extraction, a corresponding mechanism is utilized to avoid the values of gap image (GAPxe2x80x2) being higher than the considered threshold.
The present invention permits the extraction of the primary numerical information (Iinf1) from a modified primary numerical document (Ixe2x80x2orig) which is assumed to contain hidden primary numerical information (Iinf1) according to the previously described insertion process. The extraction process involves the steps of:
computing a self-similarity code (Wxe2x80x2) associated to the modified initial document (Ixe2x80x2orig) by using a same context as that used for the insertion process;
retrieving the secondary numerical information (Ixe2x80x2inf2) for each pixel from modified initial document (Ixe2x80x2orig) and the self-similarity code (Wxe2x80x2) by computing Ixe2x80x2inf2=Iorigxe2x88x92Axe2x80x2, in the particular case where the used code is contractive;
testing the recovered secondary numerical information (Ixe2x80x2inf2) and deducing the primary numerical information (Ixe2x80x2inf1) as a function of the binary conventional relationship between a selected pixel of the gap image (GAP(x,y)) and the primary numerical image (Iinf1) considered during the inserting process.
In the particular case of the previous relationship, this step will result in the fact that the hidden primary numerical information (Iinf1) is equal to a first digital value (1), if secondary number image (Ixe2x80x2inf2) is positive; conversely, the hidden primary numerical information (Iinf1) will be equal to a second digital value (0) for the considered pixel, so that the hidden binary data can be retrieved from the modified document (Ixe2x80x2orig).